package a.c;

import java.util.*;

public class q
  implements t
{
  o a = new o();
  o b = new o();
  boolean c = false;
  boolean d = false;
  private l e = new l(3, 5);
  private l f = new l(3, 5);
  private HashMap g = new HashMap(11);
  private x.a_ h;
  private static final boolean i = true;
  private static final x.a_ j = new x.a_()
  {
    public e a(q paramAnonymousq, e paramAnonymouse)
    {
      return paramAnonymousq.i();
    }
    
    public d a(q paramAnonymousq, e paramAnonymouse1, e paramAnonymouse2, d paramAnonymousd)
    {
      return paramAnonymousq.a(paramAnonymouse1, paramAnonymouse2);
    }
    
    public q a()
    {
      return new q();
    }
    
    public void a(q paramAnonymousq1, q paramAnonymousq2) {}
    
    public void a(q paramAnonymousq1, q paramAnonymousq2, Map paramAnonymousMap1, Map paramAnonymousMap2) {}
  };
  private ArrayList k;
  public static final int l = 1;
  public static final int m = 0;
  public static boolean n;
  public static boolean o;
  public static boolean p;
  public static int q;
  public static int r;
  public static boolean s;
  public static boolean t;
  public static boolean u;
  public static int v;
  public static boolean w;
  public static int x;
  public static boolean y;
  public static boolean z;
  public static boolean A;
  public static int B;
  public static boolean C;
  public static int D;
  public static boolean E;
  public static boolean F;
  public static boolean G;
  public static int H;
  public static boolean I;
  public static boolean J;
  public static int K;
  public static boolean L;
  public static boolean M;
  public static boolean N;
  public static int O;
  public static int P;
  public static boolean Q;
  public static boolean R;
  public static boolean S;
  public static int T;
  public static int U;
  public static boolean V;
  public static int W;
  public static boolean X;
  public static int Y;
  public static int Z;
  public static boolean ab;
  public static int bb;
  public static int cb;
  public static boolean db;
  public static int eb;
  public static boolean fb;
  public static int gb;
  public static boolean hb;
  public static int ib;
  public static boolean jb;
  public static boolean kb;
  public static boolean lb;
  public static int mb;
  public static boolean nb;
  public static int ob;
  public static int pb;
  public static boolean qb;
  public static boolean rb;
  public static boolean sb;
  public static boolean tb;
  public static int ub;
  public static boolean vb;
  public static int wb;
  public static int xb;
  public static boolean yb;
  public static int zb;
  public static int Ab;
  public static boolean Bb;
  public static boolean Cb;
  public static boolean Db;
  public static boolean Eb;
  public static boolean Fb;
  public static boolean Gb;
  public static int Hb;
  public static int Ib;
  public static int Jb;
  public static int Kb;
  public static int Lb;
  public static boolean Mb;
  public static boolean Nb;
  public static boolean Ob;
  public static int Pb;
  public static boolean Qb;
  public static int Rb;
  public static int Sb;
  public static int Tb;
  public static int Ub;
  public static int Vb;
  public static boolean Wb;
  public static boolean Xb;
  public static boolean Yb;
  public static boolean Zb;
  public static int ac;
  public static int bc;
  public static boolean cc;
  public static boolean dc;
  public static int ec;
  public static boolean fc;
  public static int gc;
  public static boolean hc;
  public static int ic;
  public static boolean jc;
  public static int kc;
  public static boolean lc;
  public static int mc;
  public static int nc;
  public static boolean oc;
  public static boolean pc;
  public static boolean qc;
  public static boolean rc;
  public static boolean sc;
  public static boolean tc;
  public static int uc;
  public static int vc;
  public static boolean wc;
  public static int xc;
  public static int yc;
  public static int zc;
  public static boolean Ac;
  public static int Bc;
  public static boolean Cc;
  public static int Dc;
  public static int Ec;
  public static boolean Fc;
  public static int Gc;
  public static int Hc;
  public static int Ic;
  public static boolean Jc;
  public static int Kc;
  public static int Lc;
  public static int Mc;
  public static boolean Nc;
  public static int Oc;
  public static int Pc;
  public static int Qc;
  public static int Rc;
  public static int Sc;
  public static int Tc;
  public static boolean Uc;
  public static int Vc;
  public static boolean Wc;
  public static boolean Xc;
  public static boolean Yc;
  public static int Zc;
  public static int ad;
  public static int bd;
  public static boolean cd;
  public static boolean dd;
  public static boolean ed;
  public static int fd;
  public static int gd;
  public static boolean hd;
  public static int id;
  public static int jd;
  public static int kd;
  public static boolean ld;
  public static boolean md;
  public static int nd;
  public static int od;
  public static int pd;
  public static boolean qd;
  public static boolean rd;
  public static int sd;
  public static boolean td;
  public static boolean ud;
  public static boolean vd;
  public static int wd;
  public static int xd;
  public static boolean yd;
  public static int zd;
  public static boolean Ad;
  public static int Bd;
  public static boolean Cd;
  public static int Dd;
  public static int Ed;
  public static int Fd;
  public static int Gd;
  public static int Hd;
  public static boolean Id;
  public static boolean Jd;
  public static int Kd;
  public static boolean Ld;
  public static boolean Md;
  public static boolean Nd;
  public static int Od;
  public static boolean Pd;
  public static int Qd;
  public static boolean Rd;
  public static boolean Sd;
  public static int Td;
  public static int Ud;
  public static int Vd;
  public static boolean Wd;
  public static int Xd;
  public static boolean Yd;
  public static int Zd;
  public static boolean ae;
  public static boolean be;
  public static int ce;
  public static int de;
  public static boolean ee;
  public static int fe;
  public static boolean ge;
  public static boolean he;
  public static int ie;
  public static int je;
  public static boolean ke;
  public static int le;
  public static boolean me;
  public static int ne;
  public static int oe;
  public static boolean pe;
  public static int qe;
  public static int re;
  public static boolean se;
  public static boolean te;
  public static int ue;
  public static boolean ve;
  public static int we;
  public static boolean xe;
  public static boolean ye;
  public static boolean ze;
  public static boolean Ae;
  public static int Be;
  public static boolean Ce;
  public static boolean De;
  public static boolean Ee;
  public static boolean Fe;
  public static int Ge;
  public static int He;
  public static int Ie;
  public static int Je;
  public static boolean Ke;
  public static boolean Le;
  public static boolean Me;
  public static int Ne;
  public static int Oe;
  public static int Pe;
  public static int Qe;
  public static boolean Re;
  public static boolean Se;
  public static boolean Te;
  public static int Ue;
  public static int Ve;
  public static int We;
  public static int Xe;
  public static boolean Ye;
  public static boolean Ze;
  public static boolean af;
  public static int bf;
  public static boolean cf;
  public static boolean df;
  public static boolean ef;
  public static boolean ff;
  public static boolean gf;
  public static int hf;
  public static boolean jf;
  public static boolean kf;
  public static int lf;
  public static int mf;
  public static int nf;
  public static int of;
  public static int pf;
  public static boolean qf;
  public static int rf;
  public static boolean sf;
  public static boolean tf;
  public static int uf;
  public static boolean vf;
  public static int wf;
  public static boolean xf;
  public static boolean yf;
  public static int zf;
  public static boolean Af;
  public static boolean Bf;
  public static boolean Cf;
  public static boolean Df;
  public static int Ef;
  public static int Ff;
  public static int Gf;
  public static boolean Hf;
  public static boolean If;
  public static int Jf;
  public static int Kf;
  public static int Lf;
  public static boolean Mf;
  public static boolean Nf;
  public static boolean Of;
  public static int Pf;
  public static int Qf;
  public static int Rf;
  public static boolean Sf;
  public static boolean Tf;
  public static int Uf;
  public static int Vf;
  public static int Wf;
  public static boolean Xf;
  public static int Yf;
  public static int Zf;
  public static int ag;
  public static boolean bg;
  public static int cg;
  
  public x.a_ e()
  {
    if (z.f == 0) {
      if (this.h == null) {
        this.h = f();
      }
    }
    return this.h;
  }
  
  protected x.a_ f()
  {
    return j;
  }
  
  public void a(x.a_ parama_)
  {
    this.h = parama_;
  }
  
  protected final boolean g()
  {
    int i1 = z.f;
    if ((i1 != 0) || (this.k != null)) {
      if (i1 != 0) {}
    }
    return !this.k.isEmpty();
  }
  
  public q() {}
  
  public q(q paramq)
  {
    this(paramq, paramq.v());
  }
  
  public q(q paramq, y paramy)
  {
    this();
    this.e = paramq.e.c();
    this.f = paramq.f.c();
    x localx = paramq.B();
    Object localObject2;
    do
    {
      if (!paramy.e()) {
        break;
      }
      localObject1 = (e)paramy.j();
      localObject2 = ((e)localObject1).a(this);
      localx.a(localObject1, localObject2);
      if (i2 == 0)
      {
        if (i1 != 0) {
          break label112;
        }
        this.e.a((e)localObject1, (e)localObject2);
        paramy.f();
      }
    } while (i1 == 0);
    label112:
    Object localObject1 = paramq.w();
    do
    {
      if (!((m)localObject1).e()) {
        break;
      }
      localObject2 = ((m)localObject1).a();
      e locale1 = (e)localx.get(((d)localObject2).e());
      e locale2 = (e)localx.get(((d)localObject2).f());
      if (i1 != 0) {
        return;
      }
      if ((i2 != 0) || ((locale1 != null) && (locale2 != null)))
      {
        d locald = ((d)localObject2).a(this, locale1, locale2);
        this.f.a((d)localObject2, locald);
      }
      ((m)localObject1).f();
    } while (i1 == 0);
    if (i2 == 0)
    {
      if (i2 == 0)
      {
        if (paramq.k != null) {
          this.k = ((ArrayList)paramq.k.clone());
        }
        paramq.g = ((HashMap)paramq.g.clone());
      }
      paramq.a(localx);
    }
  }
  
  public q h()
  {
    return new q(this);
  }
  
  public e i()
  {
    e locale = new e(this);
    if ((z.f != 0) || (this.k != null)) {
      a(cb.a(this, locale));
    }
    return locale;
  }
  
  public d a(e parame1, e parame2)
  {
    return a(parame1, null, parame2, null, 0, 0);
  }
  
  public d a(e parame1, d paramd1, e parame2, d paramd2, int paramInt1, int paramInt2)
  {
    d locald = new d(this, parame1, paramd1, parame2, paramd2, paramInt1, paramInt2);
    if ((z.f != 0) || (this.k != null)) {
      a(cb.a(this, locald));
    }
    return locald;
  }
  
  public void a(e parame)
  {
    b(parame);
  }
  
  private void b(e parame)
  {
    int i2 = z.f;
    int i1 = z.e;
    if (i2 == 0) {
      if (parame.g() != this) {
        throw new IllegalArgumentException("Node not in this graph.");
      }
    }
    if (i2 == 0)
    {
      if (this.k != null) {
        z();
      }
    }
    else {
      a(cb.c(this, parame));
    }
    d locald;
    if ((locald = parame.f) != null) {
      break label84;
    }
    for (;;)
    {
      if (i2 == 0)
      {
        a(locald);
        if (i1 == 0)
        {
          if (i1 == 0) {
            break;
          }
          label84:
          if (i2 != 0) {
            continue;
          }
          if ((locald = parame.e) != null) {}
          for (;;)
          {
            if (i2 == 0)
            {
              a(locald);
              if (i1 == 0)
              {
                if (i1 == 0) {
                  break;
                }
                this.a.d(parame);
                parame.b = null;
                if (i2 != 0) {
                  continue;
                }
                this.c = true;
              }
            }
          }
        }
      }
    }
    if (i2 == 0)
    {
      if (this.k != null) {
        a(cb.d(this, parame));
      }
    }
    else {
      A();
    }
  }
  
  public void a(d paramd)
  {
    c(paramd);
  }
  
  private void c(d paramd)
  {
    int i1 = z.f;
    if (i1 == 0) {
      if (paramd.c() != this) {
        throw new IllegalArgumentException("edge is not in graph");
      }
    }
    if ((i1 != 0) || (this.k != null)) {
      a(cb.c(this, paramd));
    }
    e locale1 = paramd.e();
    e locale2 = paramd.f();
    c(paramd, locale1, locale2);
    this.b.d(paramd);
    paramd.a(null);
    this.d = true;
    if ((i1 != 0) || (this.k != null)) {
      a(cb.d(this, paramd));
    }
  }
  
  public void c(e parame)
  {
    int i1 = z.f;
    if (i1 == 0)
    {
      if (parame.g() != null) {
        throw new IllegalArgumentException("Node " + parame + " already in a graph!!!");
      }
      parame.k = this.a.a();
      parame.b(this);
      parame.r();
      if (i1 != 0) {}
    }
    else
    {
      if (parame.d.length < this.e.a) {
        this.e.a(parame, parame.d.length, this.e.a);
      }
      this.a.c(parame);
      this.c = true;
    }
    if ((i1 != 0) || (this.k != null)) {
      a(cb.e(this, parame));
    }
  }
  
  public void d(d paramd)
  {
    int i2 = z.f;
    int i1 = z.e;
    if (i2 == 0) {
      if (paramd.c() != null) {
        throw new IllegalArgumentException("Edge " + paramd + " already in a graph!!!");
      }
    }
    if (i2 == 0)
    {
      if (paramd.e().g() != this) {
        throw new IllegalArgumentException("Source of edge " + paramd + " not in graph");
      }
      if (i2 != 0) {}
    }
    else if (paramd.f().g() != this)
    {
      throw new IllegalArgumentException("Target of edge " + paramd + " not in graph");
    }
    if (i2 == 0) {
      if (paramd.d.length < this.f.a) {
        this.f.a(paramd, paramd.d.length, this.f.a);
      }
    }
    if ((i2 != 0) || (paramd.a() != null))
    {
      if (i2 != 0) {
        break label248;
      }
      if (((d)paramd.a()).c() == this) {}
    }
    else
    {
      this.b.c(paramd);
      if (i2 != 0) {
        break label291;
      }
      if (i1 == 0) {
        break label260;
      }
      if (i2 == 0) {}
      n = !n;
    }
    label248:
    this.b.a(paramd, paramd.a(), 1);
    label260:
    paramd.a(this);
    paramd.h();
    a(paramd, paramd.e(), null, paramd.f(), null, 0, 0);
    this.d = true;
    label291:
    if ((i2 != 0) || (this.k != null)) {
      a(cb.e(this, paramd));
    }
    if (o)
    {
      i2++;
      z.f = i2;
    }
  }
  
  public void a(d paramd1, d paramd2, d paramd3, int paramInt1, int paramInt2)
  {
    a(paramd1, paramd1.e(), paramd2, paramInt1, paramd1.f(), paramd3, paramInt2);
  }
  
  public void a(d paramd1, e parame1, d paramd2, int paramInt1, e parame2, d paramd3, int paramInt2)
  {
    int i2 = z.f;
    int i1 = z.e;
    if ((i2 != 0) || (this.k != null)) {
      a(new cb(this, (byte)8, paramd1));
    }
    e locale1 = paramd1.e();
    e locale2 = paramd1.f();
    if (i2 == 0)
    {
      if (paramd1 == paramd2) {
        paramd2 = paramInt1 == 0 ? paramd2.k() : paramd2.i();
      }
      if (i2 != 0) {}
    }
    else
    {
      if (paramd1 == paramd3) {
        paramd3 = paramInt2 == 0 ? paramd3.l() : paramd3.j();
      }
      c(paramd1, locale1, locale2);
    }
    if (i2 == 0) {
      if (paramd2 == null)
      {
        if (i2 != 0) {
          break label150;
        }
        paramd1.h = parame1;
        if (i1 == 0) {
          break label148;
        }
      }
    }
    paramd1.h = paramd2.e();
    label148:
    label150:
    if (i2 == 0) {
      if (paramd3 == null)
      {
        paramd1.i = parame2;
        if (i2 != 0) {
          break label203;
        }
        if (i1 == 0) {
          break label183;
        }
      }
    }
    paramd1.i = paramd3.f();
    label183:
    a(paramd1, paramd1.h, paramd2, paramd1.i, paramd3, paramInt1, paramInt2);
    label203:
    if ((i2 != 0) || (this.k != null)) {
      a(new cb(this, (byte)9, paramd1));
    }
  }
  
  public void a(d paramd, e parame1, e parame2)
  {
    int i1 = z.f;
    if ((i1 != 0) || (this.k != null)) {
      a(new cb(this, (byte)8, paramd));
    }
    e locale1 = paramd.e();
    e locale2 = paramd.f();
    if (i1 == 0)
    {
      if (paramd.c() == null) {
        paramd.h = parame1;
      }
    }
    else
    {
      paramd.i = parame2;
      if (z.e == 0) {
        break label126;
      }
    }
    if (i1 == 0)
    {
      if (locale1 != parame1)
      {
        locale1.i(paramd);
        paramd.h = parame1;
        parame1.e(paramd);
      }
      if (i1 != 0) {}
    }
    else
    {
      if (locale2 == parame2) {
        break label126;
      }
      locale2.j(paramd);
      paramd.i = parame2;
    }
    parame2.g(paramd);
    label126:
    if ((i1 != 0) || (this.k != null)) {
      a(new cb(this, (byte)9, paramd));
    }
  }
  
  public void e(d paramd)
  {
    a(paramd, paramd.f(), paramd.e());
  }
  
  public void f(d paramd)
  {
    ArrayList localArrayList = this.k;
    this.k = null;
    c(paramd);
    this.k = localArrayList;
  }
  
  public void g(d paramd)
  {
    ArrayList localArrayList = this.k;
    this.k = null;
    d(paramd);
    this.k = localArrayList;
  }
  
  public void d(e parame)
  {
    ArrayList localArrayList = this.k;
    this.k = null;
    a(parame);
    this.k = localArrayList;
  }
  
  public void e(e parame)
  {
    ArrayList localArrayList = this.k;
    this.k = null;
    c(parame);
    this.k = localArrayList;
  }
  
  public void f(e parame)
  {
    if (z.f == 0)
    {
      if (parame.g() != this) {
        throw new IllegalArgumentException("Node not in this graph.");
      }
      this.a.d(parame);
      this.a.c(parame);
    }
    this.c = true;
  }
  
  public void g(e parame)
  {
    if (z.f == 0)
    {
      if (parame.g() != this) {
        throw new IllegalArgumentException("Node not in this graph.");
      }
      this.a.d(parame);
      this.a.a(parame, this.a.e(), 1);
    }
    this.c = true;
  }
  
  public void h(d paramd)
  {
    if (z.f == 0)
    {
      if (paramd.c() != this) {
        throw new IllegalArgumentException("Edge not in this graph.");
      }
      this.b.d(paramd);
      this.b.c(paramd);
    }
    this.d = true;
  }
  
  public void i(d paramd)
  {
    if (z.f == 0)
    {
      if (paramd.c() != this) {
        throw new IllegalArgumentException("Edge not in this graph.");
      }
      this.b.d(paramd);
      this.b.a(paramd, this.b.e(), 1);
    }
    this.d = true;
  }
  
  public int j()
  {
    return this.a.a();
  }
  
  public int k()
  {
    return this.a.a();
  }
  
  public int l()
  {
    return this.b.a();
  }
  
  public int m()
  {
    return this.b.a();
  }
  
  public boolean n()
  {
    return this.a.b();
  }
  
  public void o()
  {
    int i2 = z.f;
    int i1 = z.e;
    z();
    do
    {
      do
      {
        if (this.a.b()) {
          break;
        }
        a((e)this.a.c());
        if ((i2 == 0) && (i1 != 0)) {
          return;
        }
      } while (i1 == 0);
    } while (i2 != 0);
    A();
  }
  
  public boolean h(e parame)
  {
    return parame.g() == this;
  }
  
  public boolean j(d paramd)
  {
    return paramd.c() == this;
  }
  
  public boolean b(e parame1, e parame2)
  {
    if (z.f == 0) {
      if (parame1.g() != this) {
        throw new IllegalArgumentException("source not in this graph.");
      }
    }
    return parame1.a(parame2) != null;
  }
  
  public e p()
  {
    return (e)this.a.c();
  }
  
  public d q()
  {
    return (d)this.b.c();
  }
  
  public e r()
  {
    return (e)this.a.d();
  }
  
  public d s()
  {
    return (d)this.b.d();
  }
  
  public e[] t()
  {
    int i2 = z.f;
    int i1 = z.e;
    e[] arrayOfe = new e[k()];
    do
    {
      for (e locale = (e)this.a.c(); i1 == 0; locale = (e)locale.a)
      {
        if (locale == null) {
          break;
        }
        if ((i2 == 0) && (i1 != 0)) {
          break label66;
        }
        arrayOfe[locale.f()] = locale;
      }
    } while (i2 != 0);
    label66:
    return arrayOfe;
  }
  
  public d[] u()
  {
    int i2 = z.f;
    int i1 = z.e;
    d[] arrayOfd = new d[m()];
    do
    {
      for (d locald = (d)this.b.c(); i1 == 0; locald = (d)locald.a)
      {
        if (locald == null) {
          break;
        }
        if ((i2 == 0) && (i1 != 0)) {
          break label66;
        }
        arrayOfd[locald.d()] = locald;
      }
    } while (i2 != 0);
    label66:
    return arrayOfd;
  }
  
  public w v()
  {
    return this.a.h();
  }
  
  public m w()
  {
    return this.b.h();
  }
  
  public ab a(bb parambb, q paramq)
  {
    int i2 = z.f;
    int i1 = z.e;
    w localw = parambb.l();
    ab localab = new ab();
    byte[] arrayOfByte = new byte[j()];
    e locale;
    do
    {
      do
      {
        if (!localw.e()) {
          break;
        }
        locale = localw.d();
        arrayOfByte[locale.f()] = 1;
        if (i2 != 0) {
          break label91;
        }
        localw.f();
        if (i1 != 0) {
          break label90;
        }
      } while (i1 == 0);
    } while (i2 != 0);
    localw.h();
    label90:
    label91:
    m localm;
    label121:
    do
    {
      do
      {
        if (!localw.e()) {
          break;
        }
        break label121;
        locale = localw.d();
        localm = locale.l();
        do
        {
          if (!localm.e()) {
            break label186;
          }
          if (i1 != 0) {
            break;
          }
          if (arrayOfByte[localm.a().a(locale).f()] == 0)
          {
            localab.a(localm.a());
            a(localm.a());
          }
          localm.f();
        } while (i1 == 0);
        localw.f();
      } while (i2 != 0);
    } while (i1 == 0);
    label186:
    arrayOfByte = null;
    localw.h();
    label376:
    do
    {
      if (!localw.e()) {
        break;
      }
      locale = localw.d();
      if (i1 != 0) {
        break label453;
      }
      localm = locale.n();
      do
      {
        do
        {
          if (!localm.e()) {
            break;
          }
          d locald = localm.a();
          this.b.d(locald);
          locald.a(paramq);
          if (i1 != 0) {
            break label376;
          }
          if (locald.d.length < paramq.f.a) {
            paramq.f.a(locald, locald.d.length, paramq.f.a);
          }
          paramq.b.c(localm.a());
          localm.f();
        } while (i1 == 0);
        this.a.d(locale);
        locale.b(paramq);
      } while (i2 != 0);
      if (locale.d.length < paramq.e.a) {
        paramq.e.a(locale, locale.d.length, paramq.e.a);
      }
      paramq.a.c(locale);
      localw.f();
    } while (i1 == 0);
    if ((i2 == 0) && (i2 == 0))
    {
      if (this.k != null) {
        a(new cb(this, (byte)11, parambb));
      }
      label453:
      if (i2 != 0) {}
    }
    else
    {
      if (paramq.k != null) {
        paramq.a(new cb(paramq, (byte)10, parambb));
      }
      this.d = true;
      this.c = true;
      paramq.c = true;
    }
    paramq.d = true;
    return localab;
  }
  
  public q x()
  {
    return new q();
  }
  
  public void a(Comparator paramComparator)
  {
    int i3 = z.f;
    int i2 = z.e;
    if ((paramComparator != null) && ((i3 != 0) || (!this.b.b())))
    {
      d[] arrayOfd = u();
      a.i.l.a(arrayOfd, paramComparator);
      this.b.g();
      int i1 = 0;
      do
      {
        if (i1 >= arrayOfd.length) {
          break;
        }
        d locald = arrayOfd[i1];
        this.b.c(locald);
        locald.j = i1;
        i1++;
        if ((i3 == 0) && (i2 != 0)) {
          return;
        }
      } while (i2 == 0);
      if (i3 == 0) {
        this.d = false;
      }
    }
  }
  
  public void b(Comparator paramComparator)
  {
    int i3 = z.f;
    int i2 = z.e;
    if ((paramComparator != null) && ((i3 != 0) || (!this.a.b())))
    {
      e[] arrayOfe = t();
      a.i.l.a(arrayOfe, paramComparator);
      this.a.g();
      int i1 = 0;
      do
      {
        if (i1 >= arrayOfe.length) {
          break;
        }
        e locale = arrayOfe[i1];
        this.a.c(locale);
        locale.k = i1;
        i1++;
        if ((i3 == 0) && (i2 != 0)) {
          return;
        }
      } while (i2 == 0);
      if (i3 == 0) {
        this.c = false;
      }
    }
  }
  
  public void a(Comparator paramComparator1, Comparator paramComparator2)
  {
    int i2 = z.f;
    int i1 = z.e;
    if ((i2 != 0) || ((paramComparator1 == null) && (paramComparator2 == null))) {
      return;
    }
    d[] arrayOfd = new d[l()];
    e locale;
    if (i2 == 0) {
      if (paramComparator1 != null)
      {
        if (i2 != 0) {
          break label97;
        }
        if (paramComparator2 != null)
        {
          locale = (e)this.a.c();
          do
          {
            if (locale == null) {
              break;
            }
            locale.b(paramComparator1, arrayOfd);
            locale.a(paramComparator2, arrayOfd);
            locale = (e)locale.a;
          } while (i1 == 0);
        }
      }
    }
    label97:
    if (i2 == 0) {
      if (paramComparator2 == null)
      {
        if (i2 != 0) {
          break label154;
        }
        if (paramComparator1 != null)
        {
          locale = (e)this.a.c();
          do
          {
            if (locale == null) {
              break;
            }
            locale.b(paramComparator1, arrayOfd);
            locale = (e)locale.a;
          } while (i1 == 0);
        }
      }
    }
    label154:
    if ((i2 != 0) || ((paramComparator2 != null) && (paramComparator1 == null)))
    {
      locale = (e)this.a.c();
      do
      {
        if (locale == null) {
          break;
        }
        locale.a(paramComparator2, arrayOfd);
        locale = (e)locale.a;
      } while (i1 == 0);
    }
  }
  
  public synchronized void a(u paramu)
  {
    if (z.f == 0) {
      if (this.k == null) {
        this.k = new ArrayList();
      }
    }
    this.k.add(paramu);
  }
  
  public synchronized void b(u paramu)
  {
    int i1 = z.f;
    if (i1 == 0)
    {
      if (this.k == null) {
        return;
      }
      this.k.remove(paramu);
      if (i1 != 0) {}
    }
    else if (this.k.size() != 0)
    {
      return;
    }
    this.k = null;
  }
  
  public Iterator y()
  {
    if (z.f == 0) {
      if (this.k == null) {
        return new ArrayList(1).iterator();
      }
    }
    return new ArrayList(this.k).iterator();
  }
  
  public void z()
  {
    if ((z.f != 0) || (this.k != null)) {
      a(cb.a(this));
    }
  }
  
  public void h(Object paramObject)
  {
    if ((z.f != 0) || (this.k != null)) {
      a(cb.a(this, paramObject));
    }
  }
  
  public void A()
  {
    if ((z.f != 0) || (this.k != null)) {
      a(cb.c(this));
    }
  }
  
  public void i(Object paramObject)
  {
    if ((z.f != 0) || (this.k != null)) {
      a(cb.c(this, paramObject));
    }
  }
  
  protected void a(cb paramcb)
  {
    int i3 = z.f;
    int i2 = z.e;
    if ((i3 != 0) || (this.k != null))
    {
      u[] arrayOfu = new u[this.k.size()];
      this.k.toArray(arrayOfu);
      int i1 = 0;
      do
      {
        if (i1 >= arrayOfu.length) {
          break;
        }
        arrayOfu[i1].a(paramcb);
        i1++;
      } while (i2 == 0);
    }
  }
  
  public x B()
  {
    return this.e.a(this.a, "ANONYMOUS");
  }
  
  public n C()
  {
    return this.f.c(this.b, "ANONYMOUS");
  }
  
  public void a(x paramx)
  {
    this.e.a(paramx, this.a);
  }
  
  public void a(n paramn)
  {
    this.f.a(paramn, this.b);
  }
  
  public x[] D()
  {
    return this.e.a();
  }
  
  public n[] F()
  {
    return this.f.b();
  }
  
  public Object a(Object paramObject)
  {
    return ((d)paramObject).e();
  }
  
  public Object b(Object paramObject)
  {
    return ((d)paramObject).f();
  }
  
  public Iterator a()
  {
    return a.i.m.a(v());
  }
  
  public Iterator b()
  {
    return a.i.m.a(w());
  }
  
  public k c(Object paramObject)
  {
    return (k)this.g.get(paramObject);
  }
  
  public void a(Object paramObject, k paramk)
  {
    if (z.f == 0) {
      if (paramk == null) {
        throw new IllegalArgumentException("DataProvider must be non-null!");
      }
    }
    this.g.put(paramObject, paramk);
  }
  
  public void j(Object paramObject)
  {
    this.g.remove(paramObject);
  }
  
  public Object[] c()
  {
    return this.g.keySet().toArray();
  }
  
  protected static final d i(e parame)
  {
    return parame.f;
  }
  
  private void a(d paramd1, e parame1, d paramd2, e parame2, d paramd3, int paramInt1, int paramInt2)
  {
    parame1.a(paramd1, paramd2, paramInt1);
    parame2.c(paramd1, paramd3, paramInt2);
  }
  
  private void c(d paramd, e parame1, e parame2)
  {
    parame1.i(paramd);
    parame2.j(paramd);
  }
  
  void G()
  {
    int i3 = z.f;
    int i2 = z.e;
    int i1 = 0;
    e locale = (e)this.a.c();
    if (locale != null)
    {
      locale.k = (i1++);
      locale = (e)locale.a;
    }
    for (;;)
    {
      if ((i3 != 0) || (i2 == 0))
      {
        if (i2 == 0) {
          break;
        }
        if (i3 == 0) {
          this.c = false;
        }
      }
    }
  }
  
  void H()
  {
    int i3 = z.f;
    int i2 = z.e;
    int i1 = 0;
    d locald = (d)this.b.c();
    if (locald != null)
    {
      locald.j = (i1++);
      locald = (d)locald.a;
    }
    for (;;)
    {
      if ((i3 != 0) || (i2 == 0))
      {
        if (i2 == 0) {
          break;
        }
        if (i3 == 0) {
          this.d = false;
        }
      }
    }
  }
  
  void j(e parame)
  {
    parame.a(this, this.e.a);
    parame.k = this.a.a();
    this.a.c(parame);
  }
  
  void c(d paramd1, e parame1, d paramd2, e parame2, d paramd3, int paramInt1, int paramInt2)
  {
    int i1 = z.f;
    if ((i1 != 0) || ((parame1.g() != this) || (parame2.g() != this))) {
      throw new IllegalArgumentException("Both endpoints must reside in this graph.");
    }
    if (i1 == 0) {
      if (paramd2 != null)
      {
        if (i1 != 0) {
          break label71;
        }
        if (paramd2.e() != parame1) {
          throw new IllegalArgumentException("v must be source of e1.");
        }
      }
    }
    label71:
    if (i1 == 0)
    {
      if (paramd3 != null)
      {
        if (i1 != 0) {
          break label120;
        }
        if (paramd3.f() != parame2) {
          throw new IllegalArgumentException("w must be target of e2.");
        }
      }
      paramd1.a(this, parame1, parame2, this.f.a);
    }
    label120:
    paramd1.j = this.b.a();
    this.b.c(paramd1);
    a(paramd1, paramd1.e(), paramd2, paramd1.f(), paramd3, paramInt1, paramInt2);
  }
  
  public void I()
  {
    System.out.println("Nodes slot size: " + this.e.a);
  }
  
  public String toString()
  {
    int i2 = z.f;
    int i1 = z.e;
    StringBuffer localStringBuffer = new StringBuffer(128 + 4 * j() + 4 * l());
    localStringBuffer.append("nodes #").append(k()).append(" [");
    Object localObject = v();
    do
    {
      do
      {
        do
        {
          if (!((w)localObject).e()) {
            break;
          }
          localStringBuffer.append(((w)localObject).d().toString());
          ((w)localObject).f();
        } while (!((w)localObject).e());
        localStringBuffer.append(',');
        localStringBuffer.append(' ');
        if ((i2 != 0) || ((i2 == 0) && (i1 != 0))) {
          break label152;
        }
      } while (i2 != 0);
    } while (i1 == 0);
    localStringBuffer.append("]\nedges #").append(m()).append(" [");
    label152:
    localObject = w();
    do
    {
      do
      {
        do
        {
          if (!((m)localObject).e()) {
            break;
          }
          localStringBuffer.append(((m)localObject).a().toString());
          ((m)localObject).f();
        } while (!((m)localObject).e());
        localStringBuffer.append(',');
        if (i2 != 0) {
          break label240;
        }
        localStringBuffer.append(' ');
        if ((i2 != 0) || (i1 != 0)) {
          break label239;
        }
      } while (i2 != 0);
    } while (i1 == 0);
    localStringBuffer.append(']');
    label239:
    label240:
    if ((i2 != 0) || (n)) {
      z.e = ++i1;
    }
    if (i2 != 0) {
      o = !o;
    }
    return localStringBuffer.toString();
  }
  
  static
  {
    new a.i.n();
  }
}



/* Location:           E:\idea\

 * Qualified Name:     a.c.q

 * JD-Core Version:    0.7.0.1

 */